// utils/system.js
/**
 * 获取小程序当前设备、窗口、胶囊按钮等全部系统信息
 * 已替换为微信官方推荐的新接口，不再使用 wx.getSystemInfoSync
 */
const getSystemInfo = () => {
  /* 1. 微信官方拆分接口 */
  const win = wx.getWindowInfo(); // 窗口、安全区、状态栏
  const dev = wx.getDeviceInfo(); // 设备品牌/型号/系统
  const base = wx.getAppBaseInfo(); // 基础库、主题、语言

  /* 2. 右上角胶囊按钮（菜单按钮）坐标与尺寸 */
  const menu = wx.getMenuButtonBoundingClientRect();
  const safe = win.safeArea || {};
  const screen = {
    w: win.windowWidth,
    h: win.windowHeight
  };

  /* 3. 刘海/圆角/指示条 → 距屏幕四边的安全距离 */
  const safeDistance = {
    top: safe.top || 0, // 上方安全距离（刘海高度）
    right: screen.w - (safe.right || screen.w), // 右侧安全距离
    bottom: screen.h - (safe.bottom || screen.h), // 下方安全距离（Home 指示条）
    left: safe.left || 0 // 左侧安全距离
  };

  /* 4. 自定义导航栏总高度（与胶囊垂直居中） */
  const navBarHeight = menu.bottom - safeDistance.top + 10;

  const navHeight = navBarHeight + safeDistance.top

  /* 5. 组装返回对象，全部带中文注释 */
  return {
    screenWidth: screen.w, // 屏幕宽度 (px)
    screenHeight: screen.h, // 屏幕高度 (px)
    statusBarHeight: win.statusBarHeight, // 状态栏高度 (px)
    navBarHeight: navBarHeight, // 自定义导航栏总高度 (px)

    safeArea: safe, // 完整安全区域对象 {top, right, bottom, left}
    safeDistance: safeDistance, // 上右下左安全距离对象
    navHeight: navHeight, //自定义的导航栏的全部高度

    /* 胶囊按钮（菜单按钮） */
    capsule: {
      left: menu.left, // 胶囊左边缘到屏幕左侧距离 (px)
      top: menu.top, // 胶囊上边缘到屏幕顶部距离 (px)
      right: menu.right, // 胶囊右边缘到屏幕左侧距离 (px)
      bottom: menu.bottom, // 胶囊下边缘到屏幕顶部距离 (px)
      width: menu.width, // 胶囊按钮宽度 (px)
      height: menu.height, // 胶囊按钮高度 (px)
      toRight: screen.w - menu.right, // 胶囊到屏幕右侧距离 (px)
      toTop: menu.top - win.statusBarHeight, // 胶囊到状态栏下边缘距离 (px)
      toBottom: navBarHeight - menu.bottom // 胶囊到导航栏下边缘距离 (px)
    },

    isNotch: (safe.top || 0) > 20, // 简易刘海屏判断

    /* 设备与基础库信息（可选） */
    brand: dev.brand, // 设备品牌，如 "Apple"
    model: dev.model, // 设备型号，如 "iPhone 12"
    system: dev.system, // 操作系统及版本，如 "iOS 16.0"
    platform: dev.platform, // 平台，如 "ios" / "android"
    version: base.version, // 微信版本号，如 "8.0.35"
    SDKVersion: base.SDKVersion, // 基础库版本，如 "2.32.0"
    theme: base.theme, // 系统主题 "light" | "dark"
    language: base.language // 系统语言，如 "zh_CN"
  };
};

export default getSystemInfo;